Searches among networks and file systems for content have been provided in many forms but most commonly by a variant of a search engine. A search engine is a program that searches documents for specified keywords and returns a list of the documents where the keywords were found.
Typically, a search engine works by sending out a spider to fetch as many documents as possible. Another program, called an indexer, then reads these documents and creates an index based on the words contained in each document. An index is a list of keys or keywords, each of which identifies a unique record. Indices make it faster to find specific records and to sort records by the index field. A search engine uses an algorithm to create its indices such that, ideally, only meaningful results are returned for each query by a client or user.
A fairly consistent aspect of these queries is the use of a keyword or index key. Whether a user enters a search query as a long text string or a connection of Boolean operators, the search engine examines all records for the keywords entered corresponding to documents that match the keywords. A subset of the records is then returned that satisfies the Boolean operator constraints or corresponds to the long text string. Examining these records can be a time consuming and expensive operation. In addition, a client may not desire a full record search for documents containing a particular keyword.